#ifndef PLOT_MODEL_H
#define PLOT_MODEL_H

#include <iostream>

#include <qwt_plot.h>
#include <qwt_plot_picker.h>
#include <qwt_plot_marker.h>


using namespace std;

/// <summary>
/// Model dockWidgetu zawierajacego wykres
/// </summary>
class PlotModel
{
public:	
	void setCurvePoints(const QPolygonF);
	const QPolygonF getCurvePoints() const;
	
	void setPointPicker(QwtPlotPicker*);
	QwtPlotPicker *getPointPicker() const;

	void setDrawPicker(QwtPlotPicker*);
	QwtPlotPicker *getDrawPicker() const;

	void setFitParameter(const QPointF &);
	const QPolygonF& getFitParameters() const;
	void setFitParameters(const QPolygonF&); 

	void setPlotMarkers(QwtPlotMarker *);
    const vector<QwtPlotMarker *> &getPlotMarkers() const;
	void setPlotMarker(vector<QwtPlotMarker *> & markerVector);

	void setGlobalPoint(const QPointF &);
    const vector<QPointF> &getGlobalPoint() const;
	void setGlobalPoints(vector<QPointF > );

	QPointF punkcik;

private:
	QPolygonF _curvePoints; /// punkty wyznaczajace krzywa
	QwtPlotPicker *_pointPicker; /// obiekt do wyswietlania wspolrzednych punktow
	QwtPlotPicker *_drawPicker; /// obiekt umozliwiajacy rysowanie na wykresie

	vector<QPointF> _globalStartEndPoints; /// kontenter ze wspolrzednymi globalnymi punktow start i end przedzialu ufnosci
	vector<QPointF> _confidenceStartEndPoints; ///kontener ze wspolrzednymi lokalnymi punktow start i end przedzialu ufnosci
	vector<QwtPlotMarker *> _plotMarkers; /// kontener z markerami do wykresu

	QPolygonF _params;
};


#endif